Charts are a convenient and compact way of visually presenting information, especially numeric data. For example, the population of China from 1950 to 2000 can be represented effectively with a bar chart. When implemented on a computer, the presentation of charts can be interactive, allowing the user to navigate the various charts that depict the data set and, hence, explore the data. One common chart navigation feature is known as a “drill down,” in which a user selects one element of a chart to obtain more detailed information for that element in another chart. For example, a pie chart may be displayed, showing the relative populations of China, India, and the United States. By clicking on the pie slice for China, the user can immediately bring up a bar chart showing the growth in the Chinese population over the past half-century.
Prior implementations of chart navigation have typically been programmatic, in which enabling a chart to be interactive required a programmer to code the navigation functions in a procedural language such as C or JAVA™. Typically, such code is written and compiled for proprietary applications, such as a spreadsheet. These applications are typically distributed to the users who have purchased the applications, who can then view the charts by executing the applications. The introduction of hypertext on a global scale via the World Wide Web, however, is changing the way information is distributed and displayed. Rather than distributing the proprietary application, the chart information is annotated with a markup language such as HTML and stored on a web server. In response to requests from a user, the server transmits a web page containing the marked up information to the user's rendering agent such as browser. When the browser receives the web page containing the information to be displayed along with the mark-up, the browser renders the information on the screen in accordance with the mark-up annotations embodied in the web page.
Most applications, however, cannot be executed in the context of a browser. For such applications, the user has to download and execute the application by hand or use a facility such as ActiveX to do so. From a performance aspect, this approach is undesirable, because the downloading phase imposes a large initialization time. If the application is compiled to native machine code, as most applications are, executing a downloaded application on the user's computer system raises security concerns, because the application may include a virus or a software defect that damages the user's computer system. JAVA™ is a browser-based programming language that employs virtual machine code rather than native machine code. Even though with JAVA™ applets, which can be embedded into web pages, security concerns are lessened (but still might exist due to security holes in the JAVA™ virtual machine implementation), the initialization overhead is often unacceptably too high.
As a result, there has been some interest in implementing interactive chart navigation in the rendering agent. The rendering capabilities of browsers, however, are primitive, so most authors of web pages adopt a static display approach in presenting their charts interactively. Basically, these web pages reference a single chart at a time. When the user clicks on the chart to drill down, a new web page, which links to another chart with the drill down information, is requested from a server and transmitted to the browser for rendering. This user interface is slow and not easy to use. Mouse clicks are required to bring up the additional chart view. The web page typically displays only one chart, and changing the chart display generally requires fetching another page, which injects delay into the user's exploration process.
Thus, there is a need for a way to implement interactive chart navigation that avoids the security problems and initialization delays of procedural application logic approaches, while being faster and easier to use than typical browser implementations.